Decision tables are a known approach for modeling complex logic. Decision tables are used to describe and analyze problems that involve decision situations that may be characterized by one or more conditions whose state determines further actions. Such situations may be too complex to be described by flowcharts, if-then-else or do-case statements, or other similar conditional expressions. Commonly, the process of describing a decision situation by a decision table involves, on one hand, identifying the conditions and actions associated with the situation, and, on the other, indicating which actions are to be executed for various combinations of conditions. The decision table itself serves as a concise notational tool for listing these conditions and actions as decision rules.
Typically, the decision rules of a decision table are evaluated for one or more inputs to identify a decision rule that matches the input. Commonly, a result is returned only if the input satisfies all conditions of at least one decision rule. In case an input does not satisfy all conditions of any of the rules defined in the decision table, no result is returned. For example, a result may not be returned if the decision rules defined in the decision table are too specific. Usually, specific decision rules cannot cover a wide range of situations. However, often at least one result is expected to be returned by decision tables. Thus, returning no result may be problematic.